{"version":3,"file":"static/chunks/pages/search/[[...archive]]-7494809caf75e79f.js","mappings":"2aACA,CAAAA,OAAAC,QAAA,CAAAD,OAAAC,QAAA,MAAAC,IAAA,EACA,yBACA,WACA,OAAeC,EAAQ,KACvB,EACA,8ECiEAC,CAAAA,EAAAC,CAAA,CAnEmB,QA4BGC,EA2BAA,KAvDF,CAAEC,SAAAA,CAAQ,CAAEC,YAAAA,CAAW,CAAEC,OAAAA,EAAS,EAAE,CAAEC,WAAAA,CAAU,CAAE,CAAAC,EAE9DC,EAAQC,CAAAA,EAAAA,EAAAA,CAAAA,EAAeL,EAAaE,GAG1C,SAASJ,EAAYQ,CAAI,SACvB,IAAIA,EACK,GAAcL,MAAAA,CAAXF,GAAkBQ,MAAA,CAAPN,GAEhB,GAAoBK,MAAAA,CAAjBP,EAAS,UAAeE,MAAAA,CAAPK,GAAcC,MAAA,CAAPN,EACpC,CAEA,SAASO,EAAiBF,CAAI,EAC5B,OAAOA,IAASN,EACZ,4CACA,+FACN,CAEA,OACEI,GACAA,EAAMK,MAAM,CAAG,GACb,GAAAC,EAAAC,GAAA,EAACC,MAAAA,CAAIC,UAAU,kCACb,GAAAH,EAAAI,IAAA,EAACC,KAAAA,CAAGF,UAAU,oGACXb,EAAc,GACb,GAAAU,EAAAC,GAAA,EAACK,KAAAA,CAAGH,UAAU,wDACZ,GAAAH,EAAAC,GAAA,EAACM,IAAIA,CACHC,aAAW,gBACXL,UAAWL,IACXW,KAAMrB,OAAAA,CAAAA,EAAAA,EAAYE,EAAc,KAA1BF,KAAAA,IAAAA,EAAAA,EAAgC,YACvC,WAMJM,EAAMgB,GAAG,CAAC,QAQCtB,QAPV,GAAAY,EAAAC,GAAA,EAACK,KAAAA,CAECH,UAAU,wDAEV,GAAAH,EAAAC,GAAA,EAACM,IAAIA,CACHC,aAAY,QAAmBX,MAAA,CAAXc,GACpBR,UAAWL,EAAiBa,GAC5BF,KAAMrB,OAAAA,CAAAA,EAAAA,EAAYuB,EAAAA,GAAZvB,KAAAA,IAAAA,EAAAA,EAA2B,YAEhCuB,KAREA,EAUH,GAGLrB,EAAcE,GACb,GAAAQ,EAAAC,GAAA,EAACK,KAAAA,CAAGH,UAAU,wDACZ,GAAAH,EAAAC,GAAA,EAACM,IAAIA,CACHC,aAAW,YACXL,UAAWL,IACXW,KAAMrB,OAAAA,CAAAA,EAAAA,EAAYE,EAAc,KAA1BF,KAAAA,IAAAA,EAAAA,EAAgC,YACvC,eASf,4ICmBAF,CAAAA,EAAA,QAlFsB,OAAC,CACrB0B,YAAAA,CAAW,CACXC,SAAAA,CAAQ,CACRvB,YAAAA,CAAW,CACXwB,WAAAA,CAAU,CACVC,IAAAA,CAAG,CACHvB,WAAAA,CAAU,CACX,CAAAC,QACC,GAAAO,EAAAI,IAAA,EAAAJ,EAAAgB,QAAA,YACE,GAAAhB,EAAAC,GAAA,EAACgB,EAAAA,CAAIA,CAAAA,CAACF,IAAKA,IACX,GAAAf,EAAAC,GAAA,EAACiB,KAAAA,CAAGf,UAAU,uGACX,GAAiCW,MAAAA,CAA9BK,EAAAA,CAAMA,CAACC,mBAAmB,CAAC,KAAcvB,MAAA,CAAXiB,KAEnCD,OAAAA,GAAqBA,IAAAA,EAASd,MAAM,CACnC,GAAAC,EAAAC,GAAA,EAACoB,IAAAA,CAAElB,UAAU,uBAAegB,EAAAA,CAAMA,CAACG,eAAe,GAElD,GAAAtB,EAAAI,IAAA,EAAAJ,EAAAgB,QAAA,YACE,GAAAhB,EAAAC,GAAA,EAACsB,EAAAA,CAAQA,CAAAA,CAACC,MAAOX,EAAUY,cAAa,KACxC,GAAAzB,EAAAC,GAAA,EAACyB,EAAAA,CAAUA,CAAAA,CACTrC,SAAUuB,EACVtB,YAAaA,EACbC,OAAQ,SAAoBM,MAAA,CAAXiB,GACjBtB,WAAYA","sources":["webpack://_N_E/?dad7","webpack://_N_E/./components/Pagination.js","webpack://_N_E/./pages/search/[[...archive]].js"],"sourcesContent":["\n    (window.__NEXT_P = window.__NEXT_P || []).push([\n      \"/search/[[...archive]]\",\n      function () {\n        return require(\"private-next-pages/search/[[...archive]].js\");\n      }\n    ]);\n    if(module.hot) {\n      module.hot.dispose(function () {\n        window.__NEXT_P.push([\"/search/[[...archive]]\"])\n      });\n    }\n  ","import Link from \"next/link\";\n\nimport { getPageNumbers } from \"@/utilities/pagination\";\n\nconst Pagination = ({ basePath, currentPage, params = \"\", totalPages }) => {\n  // Generate visible page numbers\n  const pages = getPageNumbers(currentPage, totalPages);\n\n  // Create page link\n  function getPageLink(page) {\n    if (page === 1) {\n      return `${basePath}${params}`;\n    }\n    return `${basePath}/page/${page}${params}`;\n  }\n\n  function getPageClassName(page) {\n    return page === currentPage\n      ? \"block p-4  bg-blue text-white leading-[1]\"\n      : \"block p-4 text-blue focus:text-white focus:bg-blue hover:text-white hover:bg-blue leading-[1]\";\n  }\n\n  return (\n    pages &&\n    pages.length > 1 && (\n      <div className=\"mb-0 mt-8 flex lg:mb-4\">\n        <ul className=\"mx-auto flex flex-row overflow-hidden rounded-lg border border-card-border bg-off-white\">\n          {currentPage > 1 && (\n            <li className=\"border-l border-card-border first:border-l-0\">\n              <Link\n                aria-label=\"Previous Page\"\n                className={getPageClassName()}\n                href={getPageLink(currentPage - 1) ?? \"\"}\n              >\n                «\n              </Link>\n            </li>\n          )}\n\n          {pages.map((pageNumber) => (\n            <li\n              key={pageNumber}\n              className=\"border-l border-card-border first:border-l-0\"\n            >\n              <Link\n                aria-label={`Page ${pageNumber}`}\n                className={getPageClassName(pageNumber)}\n                href={getPageLink(pageNumber) ?? \"\"}\n              >\n                {pageNumber}\n              </Link>\n            </li>\n          ))}\n\n          {currentPage < totalPages && (\n            <li className=\"border-l border-card-border first:border-l-0\">\n              <Link\n                aria-label=\"Next Page\"\n                className={getPageClassName()}\n                href={getPageLink(currentPage + 1) ?? \"\"}\n              >\n                »\n              </Link>\n            </li>\n          )}\n        </ul>\n      </div>\n    )\n  );\n};\n\nexport default Pagination;\n","import CardGrid from \"@/components/cardGrid/CardGrid\";\nimport Head from \"@/components/Head\";\nimport Pagination from \"@/components/Pagination\";\nimport labels from \"@/config/labels\";\nimport { getPostArchives } from \"@/pages/api/apiWP\";\n\nconst SearchArchive = ({\n  archivePath,\n  archives,\n  currentPage,\n  searchTerm,\n  seo,\n  totalPages,\n}) => (\n  <>\n    <Head seo={seo} />\n    <h1 className=\"mb-8 font-heading text-2xl font-bold capitalize leading-[1.15] text-nav-blue sm:text-[2rem]\">\n      {`${labels.searchResultsPrefix} ${searchTerm}`}\n    </h1>\n    {archives === null || archives.length === 0 ? (\n      <p className=\"text-center\">{labels.searchNoResults}</p>\n    ) : (\n      <>\n        <CardGrid items={archives} imagePriority />\n        <Pagination\n          basePath={archivePath}\n          currentPage={currentPage}\n          params={`?term=${searchTerm}`}\n          totalPages={totalPages}\n        />\n      </>\n    )}\n  </>\n);\n\nexport async function getServerSideProps(context) {\n  const searchTerm = context?.query?.term;\n  // Redirect to homepage if no search term\n  if (!searchTerm) {\n    return { redirect: { destination: \"/\" } };\n  }\n\n  const paths = context?.query?.archive;\n\n  // Page is a valid archive page if there is no page\n  // number or url matches /page/number\n  const isValidArchivePage =\n    !paths?.[0] || (paths?.[0]?.toLowerCase() === \"page\" && paths?.[1]);\n  // If url is not a valid archive page, redirect to\n  // first page of results if search term provided or\n  // return 404\n  if (!isValidArchivePage) {\n    return paths?.[0]?.toLowerCase() === \"page\"\n      ? { redirect: { destination: `/search?term=${searchTerm}` } }\n      : { notFound: true };\n  }\n\n  const page = paths?.[1];\n  // Redirect to first page if path is 0 or 1, or not a number\n  if (page && (page === \"0\" || page === \"1\" || !/^\\d*$/g.test(page))) {\n    return { redirect: { destination: `/search?term=${searchTerm}` } };\n  }\n\n  // Fetch post archives based on page number and search term\n  const pageNumber = paths?.[1] ? parseInt(paths?.[1]) : 0;\n  const archives = await getPostArchives({\n    type: \"search\",\n    value: searchTerm,\n    pageNumber,\n  });\n  const currentPage = paths?.[1] ? parseInt(paths?.[1]) : 1;\n  // Construct seo\n  const seo = {\n    title: `${labels?.searchPageTitlePrefix} ${searchTerm}`,\n    metaDesc: `${labels?.searchPageDescriptionPrefix} ${searchTerm}`,\n  };\n\n  return {\n    props: {\n      ...archives,\n      archivePath: \"/search\",\n      currentPage,\n      searchTerm,\n      seo,\n    },\n  };\n}\n\nexport default SearchArchive;\n"],"names":["window","__NEXT_P","push","__webpack_require__","__webpack_exports__","Z","getPageLink","basePath","currentPage","params","totalPages","param","pages","getPageNumbers","page","concat","getPageClassName","length","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","jsxs","ul","li","Link","aria-label","href","map","pageNumber","archivePath","archives","searchTerm","seo","Fragment","Head","h1","labels","searchResultsPrefix","p","searchNoResults","CardGrid","items","imagePriority","Pagination"],"sourceRoot":""}